<?php

class KelurahansController extends \BaseController {

	/**
	 * Display a listing of kelurahans
	 *
	 * @return Response
	 */

	public function dataKecamatan()
	{
		$kecamatans = DB::table('kecamatans')->leftJoin('kabupatens','kabupatens.id','=','kecamatans.kabupaten_id')->leftJoin('provinsis','provinsis.id','=','kabupatens.provinsi_id')->where('kecamatans.is_active', '=', '1')
		->select(array('kecamatans.id','provinsis.nama AS provinsi_nama','kabupatens.nama AS kabupaten_nama','kecamatans.nama'));
		return Datatables::of($kecamatans)
		->edit_column('nama','<span data-id="{{ $id }}" data-nama="{{ $nama }}">{{ $nama }}</span>')
		->make();
	}

	public function dataTable()
	{
		// $kelurahans = Kelurahan::all();

		$kelurahans = DB::table('kelurahans')->leftJoin('kecamatans','kecamatans.id','=','kelurahans.kecamatan_id')->leftJoin('kabupatens','kabupatens.id','=','kecamatans.kabupaten_id')->leftJoin('provinsis','provinsis.id','=','kabupatens.provinsi_id')->where('kelurahans.is_active', '=', '1')->select(array(
			'kelurahans.id',
			'provinsis.nama as namaProvinsi',
			'kabupatens.nama as namaKabupaten',
			'kecamatans.nama as namaKecamatan',
			'kelurahans.nama as namaKelurahan',
			'kelurahans.keterangan'
			));

		// return View::make('kelurahans.index', compact('kelurahans'));

		return Datatables::of($kelurahans)
		->add_column('Action', 
			'<div class="btn-group">
				<a href="#" class="btn btn-default btn-detail" data-provinsi="{{ $namaProvinsi }}" data-kabupaten="{{ $namaKabupaten }}" data-kec="{{ $namaKecamatan }}" data-nama="{{ $namaKelurahan }}" data-keterangan="{{ $keterangan }}"><i class="fa fa-list text-danger" data-toggle="tooltip" data-placement="top" data-original-title="Detail"></i></a>
				<a href="{{ URL::route(\'kelurahans.edit\', $id) }}" class="btn btn-default btn-edit" data-toggle="tooltip" data-placement="top" data-original-title="Edit"><i class="fa fa-pencil text-warning"></i></a>
            	<a href="#" class="btn btn-default btn-delete" data-form=\'{{Form::model($id,array(\'route\'=>array(\'kelurahans.destroy\',$id),\'method\'=>\'DELETE\',\'class\'=>\'formDelete\'))}}{{Form::close()}}\'><i class="fa fa-times text-danger" data-toggle="tooltip" data-placement="top" data-original-title="Delete"></i></a>
			</div>')
		->make();
	}

	public function index()
	{
		return View::make('kelurahans.index');
	}

	/**
	 * Show the form for creating a new kelurahan
	 *
	 * @return Response
	 */
	public function create()
	{
		$kecamatans = array('' => '- - Pilih Kecamatan - -') + Kecamatan::where('is_active', '=', '1')->orderBy('nama','ASC')->lists('nama','id');
		return View::make('kelurahans.create', array('kecamatans'=>$kecamatans));
		// return View::make('kelurahans.create');
	}

	/**
	 * Store a newly created kelurahan in storage.
	 *
	 * @return Response
	 */
	public function store()
	{
		$validator = Validator::make($data = Input::all(), Kelurahan::$rules);

		if ($validator->fails())
		{
			return Redirect::back()->withErrors($validator)->withInput();
		}

		Kelurahan::create($data);

		return Redirect::route('kelurahans.index');
	}

	/**
	 * Display the specified kelurahan.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function show($id)
	{
		$kelurahan = Kelurahan::findOrFail($id);

		return View::make('kelurahans.show', compact('kelurahan'));
	}

	/**
	 * Show the form for editing the specified kelurahan.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function edit($id)
	{

		// return View::make('kelurahans.edit', compact('kelurahan'));

		// $kecamatans = Kecamatan::where('is_active', '=', '1')->orderBy('nama','ASC')->lists('nama','id');

		$kelurahan = Kelurahan::find($id);

		return View::make('kelurahans.edit')->with(compact('kelurahan'));
	}

	/**
	 * Update the specified resource in storage.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function update($id)
	{
		$kelurahan = Kelurahan::findOrFail($id);

		// $validator = Validator::make($data = Input::all(), Kelurahan::$rules);

		// if ($validator->fails())
		// {
		// 	return Redirect::back()->withErrors($validator)->withInput();
		// }

		// $kelurahan->update($data);
		$validator = Validator::make($data = Input::all(), Kelurahan::$rules);

		if ($validator->fails())
		{
			return Redirect::back()->withErrors($validator)->withInput();
		}

		Kelurahan::create($data);

		$kelurahan->is_active = 0;

		$kelurahan->save();

		return Redirect::route('kelurahans.index');
	}

	/**
	 * Remove the specified resource from storage.
	 *
	 * @param  int  $id
	 * @return Response
	 */
	public function destroy($id)
	{
		// Kelurahan::destroy($id);
		$kelurahan = Kelurahan::findOrFail($id);

		$kelurahan->is_active = 0;
		$kelurahan->user_id = Auth::user()->id;
		$kelurahan->action = 3;

		$kelurahan->save();

		return Redirect::route('kelurahans.index');
	}

}